Отправка формы на сервер (только при помощи JS)
Здравствуйте, при создании сайта передо мной встала задача отправить форму с файлами на сервер без перезагрузки страницы. В качестве способа реализации я выбрал универсальный метод - сделать все руками.
Насколько я понял это возможно сделать:
1. открыв запрос, задав заголовок Content-Type: multipart/form-data; boundary='--сгенерировать произвольное значение',
2. составить тело запроса из заголовков:
- для полей текстового типа, чекбоксов, радио, селектов: Content-Disposition: form/data; name='field_name' \r\n\r\n field.value \r\n
- для полей ввода файлов: Content-Disposition: form/data; name='file_input_field_name'; filename='file_input_field.value' \r\n\r\n file_input_field.files[0] \r\n, каждый из которых отделяется сторокой: --boundary \r\n
3. отправить тело запроса методом send объекта XMLHttpRequest
В результате этого, у меня все текстовые параметры успешно принимаются на стороне сервера php скриптом, а вот фотографии нет.
При просмотре тела запроса в консоли браузера для отправки файла отображается:
--07302109822734737
Content-Disposition: form-data; name="user_foto"; filename="my.jpg"
[object File]
все ли здесь правильно? мне не совсем понятно каким образом объект File может содержать эту картинку. (на стороне сервера наличие файлов проверяется if(is_uploaded_file($_FILES['user_foto']['tmp_name'])) {} else {//error message}. в браузере выводится error_message)
Помогите пожалуйста в этом разобраться.
|